package com.swanclouds.api.managers;

import com.swanclouds.common.RestService;
import com.swanclouds.model.common.ActionResponse;
import com.swanclouds.model.managers.ExportKvmFileReq;
import com.swanclouds.model.managers.Kvm;
import com.swanclouds.model.managers.Oem.BMC.UpdateKvmService;
import com.swanclouds.model.managers.OpenH5KVM;
import com.swanclouds.model.managers.SetKvmKey;

import java.io.File;

/**
 * Author: 李文强
 * Title: KvmService
 * Description: TODO
 */
public interface KvmService extends RestService {

    /**
     * 查询Kvm服务信息
     * @return Kvm
     */
    Kvm get();

    /**
     * 修改KVM服务信息
     * @param updateKvmService 修改KvmService所需参数  已完成测试
     * @return Kvm
     */
    Kvm updateKvm(UpdateKvmService updateKvmService);

    /**
     * 导出 KVM 启动文件
     * @param export 条件
     * @param filename 下载文件
     * @return response
     */
    ActionResponse download(ExportKvmFileReq export, File filename);

    /**
     * 打开H5KVM
     * @param openH5KVM username 和Web登录用户名一致最多一个符号 password 和Web登录密码一致
     * @return Kvm
     */
    //username和Web登录用户名一致最多一个符号&  password和Web登录密码一致 上面注释&打出来打不了包所以放这与上面param参数注释意思相同
   Kvm openH5Kvm(OpenH5KVM openH5KVM);

    /**
     * 设置KVMKey
     * @param setKvmKey 设置参数 id,idExit,SecretKey,Mode
     * @return Kvm
     */
    Kvm setKvmKey(SetKvmKey setKvmKey);

}
